﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;

namespace FastNET.CleanAct.Client.TaskProcessing.Basic.Tasks.Registry
{
    internal class RegistryTask : Task
    {
        #region Variables

        private readonly Dictionary<int, string> _sourceEntries;
        private readonly List<int> _erroredEntryIDs;
        private readonly List<int> _successfulEntryIDs;

        #endregion

        #region CTor/DTor

        /// <summary>
        /// Initializes a new instance of the RegistryTask class
        /// </summary>
        public RegistryTask()
        {
            _sourceEntries = new Dictionary<int, string>();
            _erroredEntryIDs = new List<int>();
            _successfulEntryIDs = new List<int>();
        }

        #endregion

        #region Public Collection Properties

        /// <summary>
        /// Gets a list of all source entries and IDs for each entry
        /// </summary>
        public Dictionary<int, string> SourceEntries
        {
            get
            {
                return _sourceEntries;
            }
        }

        /// <summary>
        /// Gets a list of all the entry IDs that encountered errors
        /// </summary>
        public List<int> ErroredEntryIDs
        {
            get
            {
                return _erroredEntryIDs;
            }
        }

        /// <summary>
        /// Gets a list of all the entry IDs that were successful errors
        /// </summary>
        public List<int> SuccessfulEntryIDs
        {
            get
            {
                return _successfulEntryIDs;
            }
        }

        #endregion

        /// <summary>
        /// Gets or sets the base path to process from
        /// </summary>
        public string RegistryPath { get; set; }

        public string UserID { get; set; }

        public bool ProcessKeys { get; set; }
    }
}